unit SmallStruct.Action;

interface

uses SmallStruct.Core,
  SmallStruct.Controller,
  SmallStruct.View;

const
  SS_ACTION_FACTORY: string = 'ACTION_FACTORY';

type
  ISSActionContext = interface(ISSObjectContext)
    ['{C221D526-7DE0-4B61-9E45-A221CB1CC483}']
    function GetBOContainer: ISSObjectContainer;
    function GetController: ISSController;
    function GetRequestView: ISSView;
    function GetResource: ISSObjectContainer;
    function GetResponseView: ISSView;
  end;

  ISSAction = interface(ISSRuntimeObject)
    ['{EB91F252-BB78-465E-A1FE-8AAF4B586705}']
    function Perform: Boolean;
  end;

  ISSActionFactory = interface(ISSObject)
    ['{88C27560-87F8-4FFB-8013-2C462DF9E4BD}']
    function GetAction(const AActionName: string): ISSAction;
    procedure FreeAction(AAction: ISSAction);
  end;

implementation

end.
